/*
1.因为弹出序列是要依据压入序列来判断的，所以首先要遍历压入序列数组；
2.在遍历压入数组时，每次都需要判断当前数值是否是弹出，即比较s[i] == popV[j]，
相同即弹出，不同则将数据压入栈；
3.不断比较，遍历完成后，判断数据是否全部出栈
*/
class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        if(pushV.size()!=popV.size()) //个数不一致肯定为false
            return false;
        int i=0;
        for(auto x:pushV)
        {
            s.push(x);
            while(s.size()&&s.top()==popV[i])
            {
                s.pop();
                i++;
            }
        }
        return s.empty();
    }
    private:
    stack<int>s;
};